package anonymus.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import anonymus.excepcion.DAOExcepcion;
import anonymus.modelo.Evento;
import anonymus.util.ConexionBD;


public class eventoDAO extends BaseDAO{

				
	public void insertar(Evento vo) throws DAOExcepcion {
		System.out.println("eventoDAO: insertar(Evento vo)");
		String query = "INSERT INTO Evento(nom_evento, premio, tope_equipos, fecha_limite, fecha_ini_evento, fecha_fin_evento, local_codLocal) VALUES (?,?,?,?,?,?,?)";
		Connection con = null;
		PreparedStatement stmt = null;
		try {
			con = ConexionBD.obtenerConexion();
			String query2 = "select local_codLocal, nom_evento from Evento where local_codLocal = ? AND nom_evento = ?";
			stmt = con.prepareStatement(query2);
			stmt.setInt(1, vo.getLocal().getCodLocal());
			stmt.setString(2, vo.getNom_evento());
			ResultSet rs;
			rs = stmt.executeQuery();
			if (rs != null && rs.next()) 
			{
				System.out.println("REGISTRO YA EXISTE");
				throw new DAOExcepcion("REGISTRO YA EXISTE");
			}
			else
			{
			stmt = con.prepareStatement(query);
			stmt.setString(1, vo.getNom_evento());
			stmt.setString(2, vo.getPremio());				
			stmt.setInt(3, vo.getTope_equipos());
			stmt.setString(4,  vo.getFecha_limite());
			stmt.setString(5, vo.getFecha_ini_evento());
			stmt.setString(6,  vo.getFecha_fin_evento());
			stmt.setInt(7, vo.getLocal().getCodLocal());
			
			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("Que penita, no se pudo insertar jaaa");
			}
			//ULTIMO CODIGO AUTOGENERADO CREADO
			System.out.println("OK INSERTADO. Obteniendo codigo Autogenerado de Evento");
			int idp = 0;
            query = "SELECT LAST_INSERT_ID()";
            stmt = con.prepareStatement(query);
            rs = stmt.executeQuery();
            if (rs.next()) {
                    idp = rs.getInt(1);
            }
            vo.setCodEvento(idp);
            
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
	}

	
	

	}

